/*
2个人时，一起过
3个人时，最小的带最大的再回来带第二大的
4个人时，两种tanxin
    ①最小的带最大的，自己回来带第二大的
    ②最小的带第二小的，自己回来，两个最大的过来，第二小的回去   这种适合相邻两个点差距较大的情况
每次都是-2，直到没有
*/
#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;
int a[1001];    //记录每个人过河时间

int main(void){
    int t;
    cin>>t;
    while(t--){
        int n,res=0;
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        sort(a+1,a+1+n,[](int a1,int a2){return a1<a2;});
        int m=n;
        while(m>0){
            if(m>=4){   //至少有4个人
                if(a[m]+a[m-1]+2*a[1]>a[m]+a[1]+2*a[2]){
                    res+=a[m]+a[1]+2*a[2];
                }
                else{
                    res+=a[m]+a[m-1]+2*a[1];
                }
                m-=2;
            }
            else{
                res+=a[m]+((m==3)?a[1]+a[2]:0);
                m=0;
            }
        }
        cout<<res<<endl;
    }
}